package com.joven.shelltest.utils.pdf;


import com.itextpdf.text.BaseColor;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.joven.shelltest.dto.StatsDayExcelDTO;
import com.joven.shelltest.dto.TestDto;

import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @Author wzj
 * @Date 2023-08-24 08:44
 **/
public class PdfTest {
    public static void main(String[] args) throws DocumentException, IOException, IllegalAccessException {
        StatsDayExcelDTO statsDayExcelDTO = new StatsDayExcelDTO();
        statsDayExcelDTO.setIndex(1);
        statsDayExcelDTO.setDate(new Date());
        statsDayExcelDTO.setRealMerNo("111");
        statsDayExcelDTO.setRechargeAmt("1.00");
        statsDayExcelDTO.setInAmt("1.00");
        statsDayExcelDTO.setPaidNum(2);
        statsDayExcelDTO.setPaidAmt("2000");
        statsDayExcelDTO.setPaidFailNum(0);
        statsDayExcelDTO.setPaidFailAmt("0.00");
        statsDayExcelDTO.setPaidRefundNum(0);
        statsDayExcelDTO.setPaidRefundAmt("0.00");
        statsDayExcelDTO.setOutAmt("2000");
        statsDayExcelDTO.setBalance("52000");

        TestDto testDto = new TestDto();
        testDto.setTitle("查询日期：2023-08-31");
        testDto.setValue("");

        TestDto testDto1 = new TestDto();
        testDto1.setTitle("姓名：joven");
        testDto1.setValue("地址：衢州公馆");


        Font font9 = PdfBase.PdfFontBuilder.builder().fontSize(4).build();
        Font font9t = PdfBase.PdfFontBuilder.builder().fontSize(4).fontStyle(Font.BOLD).build();

        String dateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));


        List<String> titles = Arrays.asList("标题1", "标题2", "标题3", "标题4");
        PdfBuilder.builder("D:\\image\\test19.pdf")
//                .title("11111")
                .logoTitle("D:\\image\\xasz_logo.jpg")
                .title(BaseColor.RED, "测试PDF大标题", 1)
//                .smallTitle("11111111")
                .smallTitle(BaseColor.DARK_GRAY, "导出人：JOVEN", 3)
                .blank()
//                .text("1111111111")
//                .blank()
                .text(10, BaseColor.BLACK, "导出时间：" + dateTimeStr, 2, null, null)
                .blank()
                // 新建表格-类，传入List，使用默认单元格样式和字体
//                .table(PdfTableBuilder.builder(titles.size())
//                        .titleRow(titles)
//                        .row(titles)
//                        .row(titles)
//                        .row(titles)
//                        .build())
                .blank()
                // 新建表格-类，传入对象，使用默认单元格样式和字体
                .table(PdfTableBuilder.builder(statsDayExcelDTO.getClass())
                        .titleRow(statsDayExcelDTO.getClass())
                        .row(statsDayExcelDTO)
                        .row(statsDayExcelDTO)
                        .row(statsDayExcelDTO)
                        .build())

                // 新建表格-类，传入字体
                .table(PdfTableBuilder.builder(statsDayExcelDTO.getClass())
                        .titleRow(font9t, statsDayExcelDTO.getClass())
                        .row(font9, statsDayExcelDTO)
                        .row(font9, statsDayExcelDTO)
                        .row(font9, statsDayExcelDTO)
                        .build())
                .table(PdfTableBuilder.specialBuilder(2, 400)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().buildSpecial(), testDto)
                        .row(PdfTableBuilder.PdfCellBuilder.builder().buildSpecial(), testDto1)
                        .build())
//                .separator()
                .sign("D:\\image\\sign.png")
                .build();
    }
}
